/*
 * 文件名：CellInfoDao.java
 * 版权：Copyright by www.huawei.com
 * 描述：
 * 修改人：Administrator
 * 修改时间：2016年3月28日
 * 跟踪单号：
 * 修改单号：
 * 修改内容：
 */

package com.zcsy.manage.persistence.base;


import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.zcsy.manage.model.base.CellInfo;
import com.zcsy.manage.model.base.CellMenu;

/**
 * @Title: CellInfoDao.java
 * @Package： com.zcsy.manage.persistence.base 
 * @Description: 小区信息管理Dao层
 *
 * @author caiyinli 13277030520@163.com
 * @Copyright: 2015 武汉中财数元信息技术有限公司 All rights reserved.
 * @date 2016年3月28日
 * @version 1.0
 * @see JDK1.7.0_75
 * @since
 */
public interface CellInfoDao {

	/**
	 * @Description 插入小区信息<br>
	 * 
	 * @param cellInfo 小区信息对象
	 * @return 1：插入成功;0：插入失败
	 * @author caiyinli 13277030520@163.com
	 * @date 2016年3月28日
	 * @see 
	 */
	int insert(CellInfo cellInfo);
	
	/**
	 * @Description 更新小区信息<br>
	 * 
	 * @param cellInfo 小区信息对象
	 * @return 1：更新成功;0：更新失败
	 * @author caiyinli 13277030520@163.com
	 * @date 2016年3月28日
	 * @see 
	 */
	int update(CellInfo cellInfo);
	
	/**
	 * @Description 根据主键删除小区信息<br>
	 * 
	 * @param id 主键id
	 * @return 
	 * @author caiyinli 13277030520@163.com
	 * @date 2016年3月29日
	 * @see 
	 */
	int deleteByPrimaryKey(String id);
	
	/**
	 * @Description 根据主键获取小区信息详情<br>
	 * 
	 * @param id 主键id
	 * @return 
	 * @author caiyinli 13277030520@163.com
	 * @date 2016年3月29日
	 * @see 
	 */
	CellInfo selectByPrimaryKey(String id);
	
	/**
	 * @Description 根据关键字获取小区信息列表<br>
	 * 
	 * @param cellInfo 小区信息对象
	 * @return 
	 * @author caiyinli 13277030520@163.com
	 * @date 2016年3月29日
	 * @see 
	 */
	List<CellInfo> selectByKeyword(CellInfo cellInfo);
	
	/**
	 * @Description 获取所有小区信息<br>
	 * 
	 * @return 
	 * @author caiyinli 13277030520@163.com
	 * @date 2016年3月31日
	 * @see 
	 */
	List<CellInfo> getAllCellInfo();
	
	/**
	 * @Description 根据省id获取城市集合<br>
	 * 
	 * @param provinceId
	 * @return 
	 * @author caiyinli 13277030520@163.com
	 * @date 2016年5月14日
	 * @see 
	 */
	List<CellInfo> getCityListByProvinceId(Map map);
	/**
	 * @Description 根据城市id获取小区集合<br>
	 * 
	 * @param cityId
	 * @return 
	 * @author caiyinli 13277030520@163.com
	 * @date 2016年5月14日
	 * @see 
	 */
	List<CellInfo> getCellListByCityId(Map map);
	
	/**
	 * @Description 根据小区id集合查询列表<br>
	 * 
	 * @param cellIds 小区id集合
	 * @return 
	 * @author caiyinli 13277030520@163.com
	 * @date 2016年5月14日
	 * @see 
	 */
	List<CellInfo> getCellListByCellIds(@Param(value = "cellIds") List<String> cellIds);
	
	/**
	 * @Description 根据排序增加置顶功能<br>
	 * 
	 * @param record 当前小区对象
	 * @return 1：成功 0：失败
	 * @author caiyinli 13277030520@163.com
	 * @date 2016年6月3日
	 * @see 
	 */
	int updateSort(CellInfo record);
	
	/** 
	 * @Title: getMenusByCellId 
	 * @Description: 根据小区获取它对应的功能权限
	 * @param @param map
	 * @param @return     
	 * @return List<String>     
	 * @throws 
	 */
	List<String> getMenusByCellId(Map map);
	
	/**
	 * Description: <br>
	 *   清空对应角色的权限
	 * @param cellId
	 * @return 
	 * @see 
	 */
	int deleteCellMenus(String cellId);
	
	/**
	 * @Description: <br>
	 *   更新角色权限
	 * @param map
	 * @return 
	 * @see 
	 */
	int insertCellMenu(CellMenu cellMenu);
	
	/**
	 * @Description 获取小区、区域列表<br>
	 * 
	 * @param cityId市id
	 * @return 返回小区、区域列表
	 * @author caiyinli 13277030520@163.com
	 * @date 2016年6月28日
	 * @see 
	 */
	List<CellInfo> getCellsAndRegions(String cityId);
	
	/**
	 * @Description 通过cityId查询小区列表<br>
	 * 
	 * @param cityId 市id
	 * @return 返回小区列表
	 * @author caiyinli 13277030520@163.com
	 * @date 2016年6月28日
	 * @see 
	 */
	List<CellInfo> getCells(String cityId);
	
	/**
     * 查询小区名称是否存在
     * @Method: isNameExists
     * @param cellId 小区id
     * @param name 小区名称
     * @author hubing
     */
    boolean isNameExists(String cellId, String name);

    /**
	 * @Description 查询多个运营公司id是否被小区引用
	 * @param companyIds 多个公司id
	 * @return 被引用的数目
	 * @author liuying 1075817474@qq.com
	 * @date 2016年9月19日
	 * @see 
	 */
	Integer selectCountByOIds(String[] companyIds);

	/**
	 * @Description 查询多个配送公司id是否被小区引用
	 * @param companyIds 多个公司id
	 * @return 被引用的数目
	 * @author liuying 1075817474@qq.com
	 * @date 2016年9月20日
	 * @see 
	 */
	Integer selectCountByDIds(String[] companyIds);

	/**
	 * @Description 查询多个物业公司id是否被小区引用
	 * @param companyIds 多个公司id
	 * @return 被引用的数目
	 * @author liuying 1075817474@qq.com
	 * @date 2016年9月20日
	 * @see 
	 */
	Integer selectCountByPIds(String[] companyIds);
	
}
